Contents
# # Finding the unloaded geometry
#
from fenics_plotly import plot
import pulse
geometry = pulse.HeartGeometry.from_file(pulse.mesh_paths["simple_ellipsoid"])
# geometry = pulse.geometries.prolate_ellipsoid_geometry(mesh_size_factor=3.0)
material = pulse.NeoHookean()
# material = pulse.Guccione()
2021-11-23 06:43:27,377 [844] INFO     pulse.geometry_utils: 
Load mesh from h5
# Parameter for the cardiac boundary conditions
bcs_parameters = pulse.MechanicsProblem.default_bcs_parameters()
bcs_parameters["base_spring"] = 1.0
bcs_parameters["base_bc"] = "fix_x"
# Create the problem
problem = pulse.MechanicsProblem(geometry, material, bcs_parameters=bcs_parameters)
# Suppose geometry is loaded with a pressure of 1 kPa
# and create the unloader
unloader = pulse.FixedPointUnloader(problem=problem, pressure=3.0)
2021-11-23 06:43:30,766 [844] INFO     pulse.unloader: 

-------------------------- Unloading options ---------------------------

	Target pressure: 3.0
	maxiter = 10
	tolerance = 0.0001
	regenerate_fibers (serial only)= False

------------------------------------------------------------------------
# Unload the geometry
unloader.unload()
2021-11-23 06:43:30,773 [844] INFO     pulse.unloader: ------------------------------------------------------------------------
2021-11-23 06:43:30,775 [844] INFO     pulse.unloader: ----------------------------Start unloading-----------------------------
2021-11-23 06:43:30,776 [844] INFO     pulse.unloader: ------------------------------------------------------------------------
2021-11-23 06:43:31,598 [844] INFO     pulse.unloader: 
LV Volume of original geometry = 0.749 ml
2021-11-23 06:43:31,641 [844] INFO     pulse.unloader: 
Do an intial solve
2021-11-23 06:44:11,893 [844] INFO     pulse.unloader: 
Iteration: 0
  Ignoring precision in integral metadata compiled using quadrature representation. Not implemented.
2021-11-23 06:44:18,245 [844] WARNING  FFC:   Ignoring precision in integral metadata compiled using quadrature representation. Not implemented.
  Ignoring precision in integral metadata compiled using quadrature representation. Not implemented.
2021-11-23 06:44:25,624 [844] WARNING  FFC:   Ignoring precision in integral metadata compiled using quadrature representation. Not implemented.
2021-11-23 06:44:26,428 [844] INFO     pulse.unloading_utils: 
LV Volume of original geometry = 0.568 ml
2021-11-23 06:45:02,814 [844] INFO     pulse.unloading_utils: 
LV Volume of inflated geometry = 0.568 ml
2021-11-23 06:45:03,218 [844] INFO     pulse.unloading_utils: 
LV Volume of new reference geometry = 0.717 ml
2021-11-23 06:45:03,265 [844] INFO     pulse.unloader: 
Residual:	0.011328623428538232
2021-11-23 06:45:03,266 [844] INFO     pulse.unloader: 
Iteration: 1
2021-11-23 06:45:03,647 [844] INFO     pulse.unloading_utils: 
LV Volume of original geometry = 0.596 ml
2021-11-23 06:45:08,494 [844] INFO     pulse.unloading_utils: 
LV Volume of inflated geometry = 0.596 ml
2021-11-23 06:45:08,885 [844] INFO     pulse.unloading_utils: 
LV Volume of new reference geometry = 0.754 ml
2021-11-23 06:45:08,922 [844] INFO     pulse.unloader: 
Residual:	0.0016980102145400784
2021-11-23 06:45:08,924 [844] INFO     pulse.unloader: 
Iteration: 2
2021-11-23 06:45:09,314 [844] INFO     pulse.unloading_utils: 
LV Volume of original geometry = 0.592 ml
2021-11-23 06:45:14,142 [844] INFO     pulse.unloading_utils: 
LV Volume of inflated geometry = 0.592 ml
2021-11-23 06:45:14,572 [844] INFO     pulse.unloading_utils: 
LV Volume of new reference geometry = 0.749 ml
2021-11-23 06:45:14,623 [844] INFO     pulse.unloader: 
Residual:	0.00025928769312994886
2021-11-23 06:45:14,625 [844] INFO     pulse.unloader: 
Iteration: 3
2021-11-23 06:45:15,026 [844] INFO     pulse.unloading_utils: 
LV Volume of original geometry = 0.593 ml
2021-11-23 06:45:19,845 [844] INFO     pulse.unloading_utils: 
LV Volume of inflated geometry = 0.593 ml
2021-11-23 06:45:20,246 [844] INFO     pulse.unloading_utils: 
LV Volume of new reference geometry = 0.750 ml
2021-11-23 06:45:20,296 [844] INFO     pulse.unloader: 
Residual:	3.9313042959155325e-05
2021-11-23 06:45:20,299 [844] INFO     pulse.unloader: ########################################################################
Unloading suceeding
# Get the unloaded geometry
unloaded_geometry = unloader.unloaded_geometry
fig = plot(geometry.mesh, opacity=0.0, show=False)
fig.add_plot(plot(unloaded_geometry.mesh, color="red", show=False))
fig.show()